package com.example.taluo.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.data.annotation.Transient;

import java.time.LocalDateTime;
import java.util.Date;

/*** @Author supersaiya
 * @Description TODO

 * @Date 2025/2/15 16:28

 * @Version 1.0*/
@Getter
@Setter
@ToString
public class Room {
    private int id; // 房间唯一标识，自增主键
    private int roomId; // 房间逻辑 ID，用于快速识别房间
    private int creatorId; // 创建房间的用户 ID
    private int password; // 房间密码（可选，加密存储）
    private int maxPlayers; // 房间最大玩家数，默认为 2
    private int status; // 房间状态：1 表示开放,0 表示已关闭,2表示战斗中
    @Transient // 不持久化到数据库
    private Integer currentPlayers = 1;
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime addTime; // 房间创建时间，自动设置为当前时间
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime; // 房间信息最后更新时间，自动更新
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime closedAt; // 房间关闭时间

}
